package ink.tiptop.service;

import com.trilead.ssh2.Connection;
import ink.tiptop.persist.domain.entity.ZjfBaseServerInfoEntity;
import ink.tiptop.dto.req.base.server.*;
import ink.tiptop.common.domain.rsp.Response;

import java.io.IOException;
import java.util.List;
import java.util.Observer;

/**
 * 服务器基本连接信息(ZjfBaseServerInfoEntity)表服务接口
 *
 * @author makejava
 * @since 2020-06-21 20:40:28
 */
public interface ZjfBaseServerInfoService  extends Observer{

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ZjfBaseServerInfoEntity queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @return 对象列表
     */
    List<ZjfBaseServerInfoEntity> queryAll();

    /**
     * 新增数据
     *
     * @param zjfBaseServerInfo 实例对象
     * @return 实例对象
     */
//    ZjfBaseServerInfoEntity insert(ZjfBaseServerInfoEntity zjfBaseServerInfo);

    /**
     * 修改数据
     *
     * @param zjfBaseServerInfoEntity 实例对象
     * @return 实例对象
     */
    ZjfBaseServerInfoEntity update(ZjfBaseServerInfoEntity zjfBaseServerInfoEntity);
    /**
     * 修改数据
     *
     * @param zjfBaseServerInfoEntity 实例对象
     * @return 实例对象
     */
    Response update(UpdateZjfBaseServerInfoRequest zjfBaseServerInfoEntity);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    Response add(AddZjfBaseServerInfoRequest request);

    /**
     * 条件查询
     *
     * @param zjfBaseServerInfoEntity 实例对象
     * @return 是否成功
     */
    Response list(QueryZjfBaseServerInfoRequest zjfBaseServerInfoEntity);

    Response delete(DeleteZjfBaseServerInfoRequest request);

    void checkServerExist(Integer serverId);

    Connection getConnection(ZjfBaseServerInfoEntity serverInfoEntity) throws IOException;



}